package com.hanamaki.demo02;

import io.appium.java_client.android.Activity;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class AppiumStartActivity01 {
    static AndroidDriver<WebElement> driver;
    @BeforeMethod
    public void setUp() throws MalformedURLException {
//        1. 创建配置对象   new
        DesiredCapabilities cp = new DesiredCapabilities();
//          添加配置信息
        cp.setCapability("deviceName", "127.0.0.1:62001");
        cp.setCapability("platformName", "Android");
        cp.setCapability("appPackage", "com.handsgo.jiakao.android");
        cp.setCapability("appActivity", "com.handsgo.jiakao.android.splash.Login");
        cp.setCapability("noReset", "true");
//        如何启动？
//        驱动 对象
        URL url = new URL("http://localhost:4723/wd/hub");
//        注册 需要打开的 驱动 以及url 以及 对应的软件
        driver = new AndroidDriver<>(url, cp);

//       为 全局元素 添加  隐式等待时间  30
        WebDriver.Timeouts timeouts = driver.manage().timeouts();
        timeouts.implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void test() throws InterruptedException {
//        com.handsgo.jiakao.android:id/closeIv   弹窗 需要判断
        String alert = "com.handsgo.jiakao.android:id/closeIv";
        if (byElement(By.id(alert))) {
            driver.findElement(By.id(alert)).click();
        } else {
            System.out.println("没找到！");
        }

        /*获得 当前 页面的类 */
        String activity = driver.currentActivity();
        System.out.println(activity);

//        通过  appium内置方法 切换 界面
//        1. 软件内 的界面  切换
//        首先 需要知道 要往哪个界面 跳转
//        Activity login = new Activity("com.handsgo.jiakao.android", ".exam.activity.ExamLogin");

//        driver.startActivity(login);
//
//        String login1 = driver.currentActivity();
//        System.out.println(login1);

//        如何 从一个 软件中 切换到另外一个 软件中
//        现在 软件打开 是在 驾考宝典中  ，切换到  浏览器中 需要获得 浏览器的 包名和类名
        Activity browser = new Activity("com.android.browser", ".BrowserActivity");
//        切换 界面
        driver.startActivity(browser);
        System.out.println(driver.currentActivity());

    }

    public static boolean byElement(By by) {
//         ctrl + alt +t
        try {
            driver.findElement(by);
            return true;
        } catch (Exception e) {
            return false;
        }
    }


    @AfterMethod
    public void release() {
//        driver.quit();
    }

}
